package com.hyt.it.ogt.kq.service.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hyt.it.ogt.kq.service.gov.arrange.model.Proctor;
import com.hyt.it.ogt.kq.service.gov.model.param.TimeRoomExaminerParam;
import com.hyt.it.ogt.kq.service.gov.model.entity.Examiner;
import com.hyt.it.ogt.kq.service.gov.model.param.proctor.ProctorParam;
import com.hyt.it.ogt.kq.service.gov.model.param.proctor.ProctorRoomSearchParam;
import com.hyt.it.ogt.kq.service.gov.model.vo.examiner.*;
import com.hyt.model.PageParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 考务人员表 Mapper 接口
 * </p>
 *
 * @author wangg
 * @since 2021-11-25
 */
public interface ExaminerMapper extends BaseMapper<Examiner> {

    /**
     * 查询用户和考场的关系数据
     *
     * @param pageParam
     * @param timeRoomExaminerParam
     * @return List
     */
    Page<TimeRoomExaminerVO> getTimeRoomExaminerList(TimeRoomExaminerParam timeRoomExaminerParam);

    /**
     * 查询用户和考场的关系数据
     * @param timeRoomExaminerParam
     * @return List
     */
    Page<TimeRoomExaminerVO> getTimeRoomExaminerListV2(Page<KwExaminerVO> pageParam,@Param("param") TimeRoomExaminerParam timeRoomExaminerParam);

    List<TimeRoomParamVO> getProctorParam(String taskId);

    void initProctorParam(String taskId);

    Page<ProctorArrangeRoomVO> getProctorRoom(Page<ProctorArrangeRoomVO> page, ProctorRoomSearchParam param);

    Page<ProctorArrangeRoomVO> getAllProctorRoom(Page<ProctorArrangeRoomVO> page, ProctorRoomSearchParam param);

    List<ProctorVO> getProctor(ProctorParam param);

    List<String> getExaminerList(String taskId, String timeId, String roomId);

    List<ProctorCommonResponseTemplateVO> getPlace(String taskId);

    Page<ProctorArrangeRoomVO> getProctorRoomNotArrange(Page<ProctorArrangeRoomVO> page, ProctorRoomSearchParam param);

    List<ProctorCommonResponseTemplateVO> getTime(String taskId);

    List<ProctorCommonResponseTemplateVO> getRoom(String taskId, String placeId);

    List<Proctor> getProctorList(String taskId);

    List<ProctorCommonResponseTemplateVO> getProctorPlace(String taskId);

    int updateProctorParam(List<TimeRoomParamVO> list);
}
